var express = require('express')
var md5 = require('blueimp-md5')
// 数据模型
var User = require('./models/user')

var router = express.Router()

router.get('/', function(req, res) {
  res.render('index.html', {
    user: req.session.user
  })
  console.log(req.session.user)
})
router.get('/login', function(req, res) {
  res.render('login.html')
})
router.post('/login', function(req, res) {
  var body = req.body
  console.log(body)
  User.findOne({
    email: body.email,
    password: md5(md5(body.password))
  }, function(err, user) {
    if(err) {
      return res.status(500).json({
        code: 500,
        message: '服务端错误'
      })
    }

    if(!user) {
      return res.status(200).json({
        code: 1,
        message: '邮箱或者密码错误'
      })
    }

    req.session.user = user

    res.status(200).json({
      code: 0,
      message: 'OK'
    })
  })
})
router.get('/register', function(req, res) {
  res.render('register.html')
})
router.post('/register', function(req, res) {
  var body = req.body
  User.findOne({
    $or: [
      {
        email: body.email
      },
      {
        nickname: body.nickname
      }
    ]
  }, function(err, data) {
    if(err) {
      return res.status(500).json({
        code: 500,
        message: '服务端错误'
      })
    }
    // r如果邮箱或昵称已存在
    if(data) {
      return res.status(200).json({
        code: 1,
        message: '邮箱或者昵称已存在'
      })
    }
    // 对密码进行 md5 重复加密
    body.password = md5(md5(body.password))
    new User(body).save(function(err, user) {
      if(err) {
        return res.status(500).json({
          code: 500,
          message: '服务端错误'
        })
      }
      req.session.user = user
      res.status(200).json({
        code: 0,
        message: 'ok'
      })
    })
  })
})
router.get('/logout', function(req, res) {
  req.session.user = null
  res.redirect('/login')
})

module.exports = router